package com.seuic.android;
import com.seuic.android.ICCardGetEccListener;
import com.seuic.android.ICCardTransStartListener;
import com.seuic.android.ICCardTransFinishListener;
import com.seuic.android.ICCardGetLogCountListener;
import com.seuic.android.ReadCardListener;

interface ICCardReader {
	int getEccBalance( ICCardGetEccListener listener, int overtime );
	int transStart( ICCardTransStartListener listener, in byte[] amount, in byte[] date, in byte[] time, byte transtype, byte key_index, byte track_type, in byte[] track_key, int overtime );
	int transFinish( ICCardTransFinishListener listener, in byte[] issuer_data, int issuer_data_len, int overtime );
	int stopRequest();
	int stopWaitTransFinish();
	int downloadAID( in byte[] aid );
	int clearAIDs();
	int downloadPubkey( in byte[] pubkey );
	int clearPubkeys();
	int setQPbocTransType( byte type );
	int getAIDCount();
	int getAID( int index, out byte[] aid, out int[] aid_len );
	int getPubkeyCount();
	int getPubkey( int index, out byte[] pubkey, out int[] pubkey_len );
	int getLogCount( ICCardGetLogCountListener listener, int overtime );
	int getLog( int index, out byte[] log, out int[] log_len );
	int getSlotStatus( out byte[] slot_status );
	int setEmvPinMode( byte pin_mode, byte pin_format, int overtime );
	int readCard( ReadCardListener listener, int overtime );
	int readerConfig( byte magcard_switch, byte icc_switch, byte icccl_switch );
	int setQPSParams( in byte[] switches, in byte[] qps_limit );
	int powerOn();
	int apdu( in byte[] send_apdu, out byte[] recv_apdu, out int[] recv_apdu_len );
	int powerOff();
	int setFallbackSupport( byte is_support );
}
